Ársreikningar Sveitarfélaga

Gögn

Code
efnahagur <- read_excel("net-efnahagsreikningur.xlsx", skip = 4) |> 
    clean_names() |> 
    fill(ar, sveitarfelag, hluti, tegund3) |> 
    drop_na(tegund2) |> 
    mutate(ar = parse_number(ar),
           sveitarfelag = str_sub(sveitarfelag, start = 6))
Code
rekstur <- read_excel("net-rekstrarreikningur.xlsx", skip = 4) |> 
    clean_names() |> 
    fill(ar, sveitarfelag, hluti) |> 
    filter(tegund2 %in% c("Gjöld Total", "Tekjur Total") | tegund == "Afskriftir") |> 
    mutate(tegund2 = ifelse(is.na(tegund2), tegund, tegund2) |> str_replace(" Total", "")) |> 
    select(-tegund) |> 
    mutate(ar = parse_number(ar),
           sveitarfelag = str_sub(sveitarfelag, start = 6))
Code
sjodsstreymi <- read_excel("net-sjodsstreymi.xlsx", skip = 4) |> 
    clean_names() |> 
    fill(ar, sveitarfelag, hluti, tegund2) |> 
    mutate(ar = parse_number(ar),
           sveitarfelag = str_sub(sveitarfelag, start = 6))
Code
mannfjoldi <- pxweb_get(
    url ="https://px.hagstofa.is:443/pxis/api/v1/is/Ibuar/mannfjoldi/2_byggdir/Byggdakjarnar/MAN030101.px", 
    query = list(
        "Byggðakjarnar" = c("*"),
        "Aldur" = c("Alls"),
        "Ár" = c("*"),
        "Kyn" = c("Alls")
    ),
    verbose = FALSE
) |> 
    as.data.frame() |> 
    as_tibble() |> 
    janitor::clean_names() |> 
    rename(mannfjoldi = mannfjoldi_eftir_byggdakjornum_kyni_og_aldri_1_januar_2001_2022) |> 
    filter(byggdakjarnar %in% c("Hafnarfjörður", "Garðabær", "Reykjavík", "Kópavogur", "Mosfellsbær", "Seltjarnarnes")) |> 
    mutate(sveitarfelag = fct_recode(byggdakjarnar,
                                      "Reykjavíkurborg" = "Reykjavík",
                                      "Hafnarfjarðarkaupstaður" = "Hafnarfjörður",
                                      "Kópavogsbær" = "Kópavogur",
                                      "Seltjarnarnesbær" = "Seltjarnarnes"),
           ar = parse_number(ar)) |> 
    select(sveitarfelag, ar, mannfjoldi)
Warning in pxweb_as_data_frame.pxweb_data(x, row.names = row.names, optional =
optional, : NAs introduced by coercion
Code
reykjavik_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Reykjavíkurborg",
    heildarskuldir = 144585281,
    eignir = 236480058,
    tekjur = 142266419,
    gjold = 138232694 + 6528867 + 1354457,
    afskriftir = 6528867 + 1354457,
    eigid_fe = 91894777,
    veltufjarmunir = 36501660,
    skammtimaskuldir = 25110092,
    veltufe = 368691
)

gardabaer_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Garðabær",
    heildarskuldir = 21879430,
    eignir = 38518069,
    tekjur = 19134280,
    gjold = 17319198 + 999523 + 875488,
    afskriftir = 999523 + 875488,
    eigid_fe = 16638638,
    veltufjarmunir = 3775414,
    skammtimaskuldir = 25110092,
    veltufe = 2468632
)

kopavogur_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Kópavogsbær",
    heildarskuldir = 42854489,
    eignir = 63179897,
    tekjur = 38124393,
    gjold =  35123789 + 1423093 + 1553624,
    afskriftir = 1423093 + 1553624,
    eigid_fe = 20325407,
    veltufjarmunir = 6107301,
    skammtimaskuldir = 9487502,
    veltufe = 1541688
)

hafnarfjordur_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Hafnarfjarðarkaupstaður",
    heildarskuldir = 46306203,
    eignir = 55056370,
    tekjur = 31226347,
    gjold =  30355042 + 853169 + 1497709,
    afskriftir = 853169 + 1497709,
    eigid_fe = 8750167,
    veltufjarmunir = 5238734,
    skammtimaskuldir = 8526054,
    veltufe = -14232
)

mosfellsbaer_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Mosfellsbær",
    heildarskuldir = 18124135,
    eignir = 23362212,
    tekjur = 13543767,
    gjold =  12872486 + 439988 + 849569,
    afskriftir = 439988 + 849569,
    eigid_fe = 5238077,
    veltufjarmunir = 2430037,
    skammtimaskuldir = 3160837,
    veltufe = 937615
)
Code
d <- efnahagur |> 
    filter(hluti == "A_hluti") |> 
    select(-tegund3, -hluti) |> 
    pivot_wider(names_from = tegund2, values_from = total) |> 
    inner_join(
        rekstur |> 
            filter(hluti == "A_hluti") |> 
            select(-hluti) |> 
            pivot_wider(names_from = tegund2, values_from = total),
        by = c("ar", "sveitarfelag")
    ) |> 
    inner_join(
        sjodsstreymi |> 
            filter(hluti == "A_hluti") |> 
            select(-hluti) |> 
            pivot_wider(names_from = tegund2, values_from = total),
        by = c("ar", "sveitarfelag")
    ) |> 
    rowwise() |> 
    mutate(heildarskuldir = sum(c_across(cols = c("Skuldbindingar", "Langtímaskuldir", "Skammtímaskuldir"))),
           eignir = sum(c_across(cols = c("Varanlegir rekstrarfjármunir", "Áhættufjármunir og langtímakröfur", "Veltufjármunir")))) |> 
    ungroup() |> 
    select(ar, sveitarfelag, heildarskuldir, eignir, tekjur = "Tekjur", gjold = "Gjöld", afskriftir = "Afskriftir",
           eigid_fe = "Eigið fé", veltufjarmunir = "Veltufjármunir", skammtimaskuldir = "Skammtímaskuldir", veltufe = "Veltufé frá rekstri") |> 
    bind_rows(
        reykjavik_2021,
        gardabaer_2021,
        kopavogur_2021,
        hafnarfjordur_2021,
        mosfellsbaer_2021
    ) |> 
    mutate_at(vars(heildarskuldir:veltufe), ~ .x * 1000) |> 
    mutate(skuldahlutf = heildarskuldir / tekjur,
           veltufjarhlutf = veltufjarmunir / skammtimaskuldir,
           eignahlutf = eignir / heildarskuldir,
           rekstrarnidurstada = tekjur - gjold,
           rekstrarnidurstada_hlutf = rekstrarnidurstada / tekjur,
           framlegd = rekstrarnidurstada + afskriftir,
           framlegd_hlutf = framlegd / tekjur) |> 
    inner_join(mannfjoldi,
               by = c("ar", "sveitarfelag"))

d |> write_csv("arsreikningagogn_ahluti.csv")
Code
plot_year <- 2014

Myndir

A hluti

Skuldir

Skuldir sem hlutfall af árstekjum

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = skuldahlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0,
                         sveitarfelag == "Kópavogsbær" ~ y - 0.015,
                         sveitarfelag == "Garðabær" ~ y + 0.015,
                         sveitarfelag == "Reykjavíkurborg" ~ y + 0.015,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, skuldahlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 1, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.3)) +
    scale_y_continuous(breaks = c(range(plot_dat$skuldahlutf), 0.75, 1, 1.25, 1.5, 2), 
                       labels = label_percent(accuract = 1)) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Skuldir sveitafélaga sem hlutfall af árstekjum (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "skuldir_hlutfall_arstekjum.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Skuldir á íbúa

Code
plot_dat <- d |> 
    mutate(hlutf = heildarskuldir / mannfjoldi) |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 1e4,
                         sveitarfelag == "Kópavogsbær" ~ y + 5e3,
                         sveitarfelag == "Garðabær" ~ y - 3e4,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 2e4,
                         sveitarfelag == "Reykjavíkurborg" ~ y - 3.5e4,
                         sveitarfelag == "Seltjarnarnesbær" ~ y + 3.5e4,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, hlutf, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_log10(breaks = c(range(plot_dat$hlutf), 3e5, 5e5, 1e6), 
                       labels = label_number(accuracy = 1, suffix = " kr.")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Skuldir sveitafélaga á hvern íbúa (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "skuldir_a_ibua.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Heildarskuldir

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = heildarskuldir,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y ,
                         sveitarfelag == "Kópavogsbær" ~ y - 2e9,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 3e9,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, heildarskuldir, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_log10(breaks = c(range(plot_dat$heildarskuldir), 1e10, 3e10, 1e11, 3e11), 
                       labels = label_number(accuracy = 1, suffix = " kr.")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Heildarskuldir sveitarfélaga (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")


p

Code
ggsave(plot = p,
       filename = "heildarskuldir.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Aukning skulda

Frá 2018

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_),
           skuldaaukning = heildarskuldir / heildarskuldir[ar == 2018]) |> 
    ungroup() |> 
    mutate(x = ar,
           y = skuldaaukning,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y ,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= 2018)

p <- plot_dat |> 
    ggplot(aes(ar, skuldaaukning, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.02, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = 2018:2021, 
                       limits = c(NA, 2021.55)) +
    scale_y_continuous(breaks = c(range(plot_dat$skuldaaukning), 1.25, 1.5), 
                       labels = label_number(suffix = "x")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfallsleg aukning heildarskulda sveitarfélaga síðan 2018 (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "skuldaaukning.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Frá 2010

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_),
           skuldaaukning = heildarskuldir / heildarskuldir[ar == 2010]) |> 
    ungroup() |> 
    mutate(x = ar,
           y = skuldaaukning,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y ,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= 2010)

p <- plot_dat |> 
    ggplot(aes(ar, skuldaaukning, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = 2010:2021, 
                       limits = c(NA, 2023)) +
    scale_y_continuous(breaks = c(range(plot_dat$skuldaaukning), 1, 1.25, 1.5, 2, 2.5, 3), 
                       labels = label_number(suffix = "x")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfallsleg aukning heildarskulda sveitarfélaga síðan 2010 (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "skuldaaukning_2010.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Veltufjárhlutfall

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = veltufjarhlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0.06,
                         sveitarfelag == "Kópavogsbær" ~ y - 0.03,
                         sveitarfelag == "Garðabær" ~ y + 0.03,
                         sveitarfelag == "Seltjarnarnesbær" ~ y + 0.03,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y - 0.1,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, veltufjarhlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 1, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2023)) +
    scale_y_continuous(breaks = c(range(plot_dat$veltufjarhlutf), 1, 2, 3), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Veltufjármunir sveitarfélaga sem hlutfall af skammtímaskuldum (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "veltufjarhlutfall.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Eignir sem hlutfall af skuldum

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = eignahlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y - 0,
                         sveitarfelag == "Kópavogsbær" ~ y - 0,
                         sveitarfelag == "Garðabær" ~ y + 0.04,
                         sveitarfelag == "Seltjarnarnesbær" ~ y - 0,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 0,
                         sveitarfelag == "Reykjavíkurborg" ~ y - 0.02,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, eignahlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 1, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_continuous(breaks = c(range(plot_dat$eignahlutf), 1, 2, 3), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Heildareignir sveitarfélaga sem hlutfall af heildarskuldum (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "eignir_vs_skuldir.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Rekstrarniðurstaða

Hlutfall af árstekjum

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = rekstrarnidurstada_hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y - 0.005,
                         sveitarfelag == "Kópavogsbær" ~ y + 0.005,
                         sveitarfelag == "Garðabær" ~ y - 0.003,
                         sveitarfelag == "Seltjarnarnesbær" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 0.005,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, rekstrarnidurstada_hlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 0, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_continuous(breaks = c(range(plot_dat$rekstrarnidurstada_hlutf), 0, -0.05, 0.05, -0.1, 0.1), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Rekstrarniðurstaða sveitarfélaga sem hlutfall af tekjum (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "rekstur_hlutf_tekjur.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Per íbúi

Code
plot_dat <- d |> 
    mutate(rekstur_per_ibui = rekstrarnidurstada / mannfjoldi) |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = rekstur_per_ibui,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y - 3.3e3,
                         sveitarfelag == "Kópavogsbær" ~ y + 4e3,
                         sveitarfelag == "Garðabær" ~ y - 1e3,
                         sveitarfelag == "Seltjarnarnesbær" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 3.3e3,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, rekstur_per_ibui, col = sveitarfelag)) +
    geom_hline(yintercept = 0, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_continuous(breaks = c(range(plot_dat$rekstur_per_ibui), -5e4, 5e4, 1e5), 
                       labels = label_number()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Rekstrarniðurstaða sveitarfélaga per íbúi (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "rekstur_per_ibui.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Framlegð

Hlutfall af árstekjum

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = framlegd_hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Seltjarnarnesbær" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 0.005,
                         sveitarfelag == "Reykjavíkurborg" ~ y - 0.004,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, framlegd_hlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 0, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_continuous(breaks = c(range(plot_dat$framlegd_hlutf), 0,  -0.1, 0.1, 0.2, 0.3), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Framlegð sveitarfélaga sem hlutfall af tekjum (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "framlegd_hlutf_tekjur.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Veltufé frá rekstri

Hreint

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = veltufe,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y - 0.005,
                         sveitarfelag == "Kópavogsbær" ~ y + 0.005,
                         sveitarfelag == "Garðabær" ~ y - 0.003,
                         sveitarfelag == "Seltjarnarnesbær" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y - 2e8,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, veltufe, col = sveitarfelag)) +
    geom_hline(yintercept = 0, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_continuous(breaks = c(range(plot_dat$veltufe), 5e9, 1e10), 
                       labels = label_number()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Veltufé frá rekstri (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "veltufe_fra_rekstri.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Hlutfall af árstekjum

Code
plot_dat <- d |> 
    mutate(hlutf = veltufe / tekjur) |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y ,
                         sveitarfelag == "Seltjarnarnesbær" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y - 0.005,
                         sveitarfelag == "Reykjavíkurborg" ~ y + 0.005,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, hlutf, col = sveitarfelag)) +
    geom_hline(yintercept = c(0, 0.05), lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_continuous(breaks = c(range(plot_dat$hlutf), 0.05, 0.1, 0.15), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Veltufé frá rekstri sem hlutfall af árstekjum",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "veltufe_fra_rekstri_hlutf_arstekjur.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

A og B hluti

Code
reykjavik_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Reykjavíkurborg",
    heildarskuldir = 407302323,
    eignir = 790566300,
    tekjur = 202598663,
    gjold = 160759009 + 21052234 + 12899248 + 4168956 - 20521219 + 32254 + 805786,
    afskriftir = 21052234 + 12899248 + 4168956 - 20521219 + 32254 + 805786,
    eigid_fe = 383263977,
    veltufjarmunir = 83847325,
    skammtimaskuldir = 57891584,
    veltufe = 26104032
)

gardabaer_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Garðabær",
    heildarskuldir = 22531983,
    eignir = 42814519,
    tekjur = 20223209,
    gjold = 17738972 + 1145857 + 930335,
    afskriftir = 1145857 + 930335,
    eigid_fe = 20282537,
    veltufjarmunir = 2435879,
    skammtimaskuldir = 4167677,
    veltufe = 2939060
)

hafnarfjordur_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Hafnarfjarðarkaupstaður",
    heildarskuldir = 50119186,
    eignir = 72151091,
    tekjur = 33592931,
    gjold =  31210323 + 1198229 + 1892891,
    afskriftir = 1198229 + 1892891,
    eigid_fe = 22031905,
    veltufjarmunir = 6098831,
    skammtimaskuldir = 6777584,
    veltufe = 766709
)

kopavogur_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Kópavogsbær",
    heildarskuldir = 48779049,
    eignir = 82309044,
    tekjur = 40113710,
    gjold =  35852917 + 1649866 + 2023285,
    afskriftir = 1649866 + 2023285,
    eigid_fe = 33464251,
    veltufjarmunir = 6092186,
    skammtimaskuldir = 9860534,
    veltufe = 2908469
)

mosfellsbaer_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Mosfellsbær",
    heildarskuldir = 19425592,
    eignir = 26050124,
    tekjur = 14435749,
    gjold =  13489629 + 521831 + 961292 + 24500,
    afskriftir = 521831 + 961292 + 24500,
    eigid_fe = 6624532,
    veltufjarmunir = 2319970,
    skammtimaskuldir = 3085467,
    veltufe = 1131407
)
Code
d <- efnahagur |> 
    filter(hluti == "A_og_B_hluti") |> 
    select(-tegund3, -hluti) |> 
    pivot_wider(names_from = tegund2, values_from = total) |> 
    inner_join(
        rekstur |> 
            filter(hluti == "A_og_B_hluti") |> 
            select(-hluti) |> 
            pivot_wider(names_from = tegund2, values_from = total),
        by = c("ar", "sveitarfelag")
    ) |> 
    inner_join(
        sjodsstreymi |> 
            filter(hluti == "A_og_B_hluti",
                   tegund2 == "Veltufé frá rekstri") |> 
            select(-hluti) |> 
            pivot_wider(names_from = tegund2, values_from = total),
        by = c("ar", "sveitarfelag")
    ) |> 
    rowwise() |> 
    mutate(heildarskuldir = sum(c_across(cols = c("Skuldbindingar", "Langtímaskuldir", "Skammtímaskuldir"))),
           eignir = sum(c_across(cols = c("Varanlegir rekstrarfjármunir", "Áhættufjármunir og langtímakröfur", "Veltufjármunir")))) |> 
    ungroup() |> 
    select(ar, sveitarfelag, heildarskuldir, eignir, tekjur = "Tekjur", gjold = "Gjöld", afskriftir = "Afskriftir",
           eigid_fe = "Eigið fé", veltufjarmunir = "Veltufjármunir", skammtimaskuldir = "Skammtímaskuldir", veltufe = "Veltufé frá rekstri") |> 
    bind_rows(
        reykjavik_2021,
        gardabaer_2021,
        kopavogur_2021,
        hafnarfjordur_2021,
        mosfellsbaer_2021
    ) |> 
    mutate_at(vars(heildarskuldir:veltufe), ~ .x * 1000) |> 
    mutate(skuldahlutf = heildarskuldir / tekjur,
           veltufjarhlutf = veltufjarmunir / skammtimaskuldir,
           eignahlutf = eignir / heildarskuldir,
           rekstrarnidurstada = tekjur - gjold,
           rekstrarnidurstada_hlutf = rekstrarnidurstada / tekjur,
           framlegd = rekstrarnidurstada + afskriftir,
           framlegd_hlutf = framlegd / tekjur) |> 
    inner_join(mannfjoldi,
               by = c("ar", "sveitarfelag"))

d |> write_csv("arsreikningagogn_aogb.csv")
Code
plot_year <- 2002

Skuldir

Skuldir sem hlutfall af árstekjum

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = skuldahlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0,
                         sveitarfelag == "Kópavogsbær" ~ y + 0.015,
                         sveitarfelag == "Garðabær" ~ y - 0.035,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, skuldahlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 1, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2024.5)) +
    scale_y_continuous(breaks = c(range(plot_dat$skuldahlutf), 0.75, 1, 1.25, 1.5, 2, 2.5), 
                       labels = label_percent(accuract = 1)) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Skuldir sveitafélaga sem hlutfall af árstekjum (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "skuldir_hlutfall_arstekjum_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Skuldir á íbúa

Code
plot_dat <- d |> 
    mutate(hlutf = heildarskuldir / mannfjoldi) |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 1e4,
                         sveitarfelag == "Kópavogsbær" ~ y + 5e3,
                         sveitarfelag == "Garðabær" ~ y - 3e4,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 1e5,
                         sveitarfelag == "Reykjavíkurborg" ~ y - 3.5e4,
                         sveitarfelag == "Seltjarnarnesbær" ~ y + 3.5e4,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, hlutf, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2024.5)) +
    scale_y_log10(breaks = c(range(plot_dat$hlutf), 3e5, 5e5, 1e6, 2e6), 
                       labels = label_number(accuracy = 1, suffix = " kr.")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Skuldir sveitafélaga á hvern íbúa (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "skuldir_a_ibua_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Heildarskuldir

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = heildarskuldir,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y - 1e9,
                         sveitarfelag == "Kópavogsbær" ~ y - 4e9,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 6e9,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, heildarskuldir, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2024.5)) +
    scale_y_log10(breaks = c(range(plot_dat$heildarskuldir), 1e10, 3e10, 1e11, 3e11), 
                       labels = label_number(accuracy = 1, suffix = " kr.")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Heildarskuldir sveitarfélaga (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")


p

Code
ggsave(plot = p,
       filename = "heildarskuldir_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Aukning skulda

Frá 2018

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_),
           skuldaaukning = heildarskuldir / heildarskuldir[ar == 2018]) |> 
    ungroup() |> 
    mutate(x = ar,
           y = skuldaaukning,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0.01,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y - 0.01,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= 2018)

p <- plot_dat |> 
    ggplot(aes(ar, skuldaaukning, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.02, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = 2018:2021, 
                       limits = c(NA, 2021.55)) +
    scale_y_continuous(breaks = c(range(plot_dat$skuldaaukning), 1.25, 1.5), 
                       labels = label_number(suffix = "x")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfallsleg aukning heildarskulda sveitarfélaga síðan 2018 (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "skuldaaukning_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Frá 2010

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_),
           skuldaaukning = heildarskuldir / heildarskuldir[ar == 2010]) |> 
    ungroup() |> 
    mutate(x = ar,
           y = skuldaaukning,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y ,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Reykjavíkurborg" ~ y - 0.04,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 0.05,
                         TRUE ~ y)) |> 
    filter(ar >= 2010)

p <- plot_dat |> 
    ggplot(aes(ar, skuldaaukning, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = 2010:2021, 
                       limits = c(NA, 2023.2)) +
    scale_y_continuous(breaks = c(range(plot_dat$skuldaaukning), 1, 1.25, 1.5, 2, 2.5, 3), 
                       labels = label_number(suffix = "x")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfallsleg aukning heildarskulda sveitarfélaga síðan 2010 (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "skuldaaukning_2010_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Veltufjárhlutfall

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = veltufjarhlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0.06,
                         sveitarfelag == "Kópavogsbær" ~ y + 0.01,
                         sveitarfelag == "Garðabær" ~ y - 0.03,
                         sveitarfelag == "Seltjarnarnesbær" ~ y + 0.07,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y ,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, veltufjarhlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 1, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2024.5)) +
    scale_y_continuous(breaks = c(range(plot_dat$veltufjarhlutf), 1, 2, 3), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    coord_cartesian(ylim = c(0.23, 3)) +
    labs(x = NULL,
         y = NULL,
         title = "Veltufjármunir sveitarfélaga sem hlutfall af skammtímaskuldum (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "veltufjarhlutfall_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Eignir sem hlutfall af skuldum

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = eignahlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y,
                         sveitarfelag == "Kópavogsbær" ~ y - 0,
                         sveitarfelag == "Garðabær" ~ y - 0.04,
                         sveitarfelag == "Seltjarnarnesbær" ~ y - 0,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y,
                         sveitarfelag == "Reykjavíkurborg" ~ y + 0.02,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, eignahlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 1, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2024.5)) +
    scale_y_continuous(breaks = c(range(plot_dat$eignahlutf), 1, 2, 3), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Heildareignir sveitarfélaga sem hlutfall af heildarskuldum (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "eignir_vs_skuldir_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Rekstrarniðurstaða

Hlutfall af árstekjum

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = rekstrarnidurstada_hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y - 0.005,
                         sveitarfelag == "Kópavogsbær" ~ y - 0.003,
                         sveitarfelag == "Garðabær" ~ y + 0.006,
                         sveitarfelag == "Seltjarnarnesbær" ~ y - 0.001,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 0.008,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, rekstrarnidurstada_hlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 0, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2024.5)) +
    scale_y_continuous(breaks = c(range(plot_dat$rekstrarnidurstada_hlutf), 0, -0.05, 0.05, -0.1, 0.1, 0.2), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Rekstrarniðurstaða sveitarfélaga sem hlutfall af tekjum (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "rekstur_hlutf_tekjur_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Per íbúi

Code
plot_dat <- d |> 
    mutate(rekstur_per_ibui = rekstrarnidurstada / mannfjoldi) |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = rekstur_per_ibui,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Seltjarnarnesbær" ~ y - 5e3,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 5e3,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, rekstur_per_ibui, col = sveitarfelag)) +
    geom_hline(yintercept = 0, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2024.5)) +
    scale_y_continuous(breaks = c(range(plot_dat$rekstur_per_ibui), -5e4, 5e4, 1e5), 
                       labels = label_number()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Rekstrarniðurstaða sveitarfélaga per íbúi (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "rekstur_per_ibui_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Framlegð

Hlutfall af árstekjum

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = framlegd_hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y - 0.005,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Seltjarnarnesbær" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 0.005,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, framlegd_hlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 0, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2024.5)) +
    scale_y_continuous(breaks = c(range(plot_dat$framlegd_hlutf), 0,  -0.1, 0.1, 0.2, 0.3), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Framlegð sveitarfélaga sem hlutfall af tekjum (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "framlegd_hlutf_tekjur_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Veltufé frá rekstri

Hreint

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = veltufe,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y - 0.005,
                         sveitarfelag == "Kópavogsbær" ~ y + 0.005,
                         sveitarfelag == "Garðabær" ~ y - 0.003,
                         sveitarfelag == "Seltjarnarnesbær" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y - 2e8,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, veltufe, col = sveitarfelag)) +
    geom_hline(yintercept = 0, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2024.5)) +
    scale_y_continuous(breaks = c(range(plot_dat$veltufe), 5e9, 1e10), 
                       labels = label_number()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Veltufé frá rekstri (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "veltufe_fra_rekstri_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Hlutfall af árstekjum

Code
plot_dat <- d |> 
    mutate(hlutf = veltufe / tekjur) |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0.005,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y ,
                         sveitarfelag == "Seltjarnarnesbær" ~ y + 0.006,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y - 0.005,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, hlutf, col = sveitarfelag)) +
    geom_hline(yintercept = c(0), lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2024.5)) +
    scale_y_continuous(breaks = c(range(plot_dat$hlutf), -0.05, 0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Veltufé frá rekstri sem hlutfall af árstekjum (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "veltufe_fra_rekstri_hlutf_arstekjur_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")